package sz.szsmk.citizencard.mvp.contract;

import java.util.List;

import sz.szsmk.citizencard.model.network.bean.response.BaseBean;
import sz.szsmk.citizencard.model.network.bean.response.CloudFlashRes;
import sz.szsmk.citizencard.model.network.bean.response.GetOrderOpenidRes;
import sz.szsmk.citizencard.model.network.bean.response.HomeHeadFuncResponse;
import sz.szsmk.citizencard.model.network.bean.response.HomeWeathRes;
import sz.szsmk.citizencard.model.network.bean.response.IUserInfo;
import sz.szsmk.citizencard.model.network.bean.response.NoticeMainres;
import sz.szsmk.citizencard.model.network.bean.response.OneWordRes;
import sz.szsmk.citizencard.model.network.bean.response.QueryAllFunctionNewRes;
import sz.szsmk.citizencard.model.network.bean.response.QueryInterductionAreaRes;
import sz.szsmk.citizencard.model.network.bean.response.QueryMainPageFunctionRes;
import sz.szsmk.citizencard.model.network.bean.response.QueryPageResourceRes;
import sz.szsmk.citizencard.model.network.bean.response.SeleciUserAuthRes;
import sz.szsmk.citizencard.model.network.clarkbean.response.AreaInfoResponse;
import sz.szsmk.citizencard.ui.adapter.bean.AppHomeCardBean;
import sz.szsmk.citizencard.ui.base.IBaseContact;

/**
 * Copyright (c)2018
 * author: zdh
 * created on: 2018/12/18 15:28
 * description:
 */
public interface IAPPMainContact {

    interface IAPPMainPresenter<T extends IBaseContact.IBaseView> extends IBaseContact.IBasePresenter {
        void queryAllFunctionNew();

        //获取头部应用
        void queryHeadFunc();

        void queryAreaInfo();

        void firstSearchUserLevel();

        void queryTheme(int i);

        void queryGoverList(int i);

        void queryMainPageFunction();

        void getBanner();

        void getAd(int id);

        void queryText();

        void getWeathGeneral();

        void selectUserAuth(String gjj);

        void getGetOrderId(String url, String type);

        void checkSuccessOrderStatus(String access_token);

        void getUserInfo();

        void queryOneWordAd();

        void getIsChecked(String origin,String version);

        void userBehaviorBrowse(int id);

        void getMainNotice();

    }

    interface IAPPMainView extends IBaseContact.IBaseView {


        void queryOneWordAdSucc(OneWordRes response);


        void queryOneWordAdFail();


        void getUserInfoFail(IUserInfo response);

        void getUnlogin(IUserInfo response);

        void getUserInfoSucc();

        void getGetOrderIdFail();

        void getGetOrderIdSucc(GetOrderOpenidRes response, String url, String type);

        void queryAllFunctionNewFail();

        void queryAllFunctionNewSucc(QueryAllFunctionNewRes response);
        ////获取数据失败
        void updataError(BaseBean response);

        void queryHeadFuncSuccess(HomeHeadFuncResponse response);


        void firstSearchUserLevelSucc(AppHomeCardBean response);

        void firstSearchUserLevelFail();

        void queryThemeSucc(QueryPageResourceRes response);

        void queryThemeFail();

        void queryGoverListSucc(QueryPageResourceRes response);

        void queryGoverListFail();

        void queryMainPageFunctionFail();

        void getBannerSucc(QueryPageResourceRes response);

        void getBannerFail();

        void queryMainPageFunctionSucc(List<QueryMainPageFunctionRes.MainPageClassListBean> main_page_class_list);

        void getAdSucc(QueryPageResourceRes response);

        void getAdFail();

        void getWeathGeneralFail(HomeWeathRes response);

        void getWeathGeneralSucc(HomeWeathRes response);

        void queryTextSucc(QueryInterductionAreaRes response);

        void queryTextFail(QueryPageResourceRes response);

        void selectUserAuthFail();

        void selectUserAuthSucc(SeleciUserAuthRes response, String type);

        void checkSuccessOrderStatusSucc(String orderStatus);

        void checkSuccessOrderStatusFail(CloudFlashRes cloudFlashRes);

        void getIsCheckedSucc(String checkedstate);

        void getIsCheckedFail();

        void queryAreaInfoSuccess(AreaInfoResponse areaInfoResponse);
        void queryAreaInfoFail();

        void getMainNoticeSucc(NoticeMainres mainres);

        void getMainNoticeError(String messag);

    }


}
